<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Standard Expression Syntax - variables</title>
    <style>
        body, h2, h3, p, ul, li {
            margin: 0;
            padding: 0;
        }

        .part {
            margin-bottom: 50px;
            line-height: 25px;
        }

        .part .content {
            margin-left: 30px;
        }
    </style>
</head>
<body>
<div class="part part1">
    <h2>表达式基本对象（Expression Basic Objects）：</h2>
    <div class="content">
        <h3>#ctx：上下文对象</h3>
        <p>是否包含指定参数变量：<span th:text="${#ctx.containsVariable('name')}"></span></p>
        <p>获得国际化资源信息：<span th:text="${#ctx.getLocale()}"></span></p>
        <p>获取参数变量值：<span th:text="${#ctx.getVariable('name')}"></span></p>
        <p>获取所有参数变量值：</p>
        <ul th:each="variable : ${#ctx.getVariableNames()}">
            <li th:text="*{variable}"></li>
        </ul>

        <hr>

        <h3>#vars：上下文变量</h3>
        <p>与 #ctx 的使用方式相同</p>
        <hr>
        <h3>#locale：上下文语言环境</h3>
        <p>获得国际化资源信息,等同于 #ctx.getLocale()：<span th:text="${#locale}"></span></p>
        <hr>
        <h3>#httpServletRequest: (仅在web上文)HttpServletRequest 对象.</h3>
        <p>HttpServletRequest 的方法</p>
        <hr>
        <h3>#httpSession: (仅在web上文) HttpSession 对象.</h3>
        <p>HttpSession 的方法</p>
    </div>
</div>
<div class="part part2">
    <h2>表达式功能对象（Expression Utility Objects）：</h2>
    <div class="content">
        <p><a href="http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#appendix-b-expression-utility-objects" target="_blank">表达式功能对象实例</a></p>
        <ul>
            <li>#dates：java.util.Date对象的实用方法。</li>
            <li>#calendars：和dates类似, 但是 java.util.Calendar 对象.</li>
            <li>#numbers: 格式化数字对象的实用方法。</li>
            <li>#strings: 字符创对象的实用方法： contains, startsWith, prepending/appending等.</li>
            <li>#arrays: 数组的实用方法。</li>
            <li>#lists: list的实用方法。</li>
            <li>#sets: set的实用方法</li>
            <li>#maps: map的实用方法。</li>
            <li>#aggregates: 对数组或集合创建聚合的实用方法。</li>
            <li>#messages: 在表达式中获取外部信息的实用方法。</li>
            <li>#ids: 处理可能重复的id属性的实用方法 (比如：迭代的结果)。</li>
        </ul>
    </div>
</div>
</body>
</html>